home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / hf / cwr / cwr.doc < prev    next >
Encoding:
Text File  |  1993-12-04  |  45.2 KB  |  1,057 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                             CWReader
  7.  
  8.  
  9.  
  10.  
  11.      A program that reads CW from el-bug to your log-program
  12.  
  13.                            version 1.0
  14.  
  15.  
  16.  
  17.  
  18.                   Made by Mikko Noromaa OH3LIM
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29. Reading this document is necessary for a thorough understanding of
  30. the operation of this program. And a thorough understanding is
  31. necessary to be able to use this program successfully and
  32. efficiently.
  33.  
  34. However, prior to reading this rather long document, you might want
  35. to view the file READ.ME. If you want, you can print the READ.ME by
  36. typing "COPY READ.ME PRN" and this document by typing "COPY
  37. CWREADER.DOC PRN".
  38.  
  39.  
  40.  
  41.  
  42.  
  43. WHAT IS CWREADER?
  44.  
  45. CWReader is a program that copies morse-code from your electronic
  46. keyer (el-bug) to your log-program. It's mainly intended for use in
  47. contests, and may be used on a DX-pedition as well. CWReader can be
  48. configured to work with almost any kind of a program, so you'll be
  49. able to enter DOS-commands with your keyer, for example! If you
  50. send CW very fast and type with the keyboard very slowly, you may
  51. also find it convenient to use your keyer to 'write' text to a
  52. word-processing program. At last, CWReader's capabilities are
  53. largely dependent on your imagination!
  54.  
  55. Even if you wouldn't want to connect a keyer to your computer, you
  56. can use CWReader as an enhancer of some contest logging-programs.
  57. It provides a CW-speed range of 12 to 50 WPM with all logging-
  58. programs that otherwise don't support such a large range. CWReader
  59. also allows you to define 'trapped-keys', with which you have the
  60. power to entirely change the actions of some keys on the keyboard.
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. THE ACCOMPANYING CONFIGURATION PROGRAM, CWRCONF
  68.  
  69. For reasons of space and efficiency, no configuration options are
  70. included in the CWReader-program itself. Instead, all configuration
  71. is done with a separate program, called CWRCONF. This program
  72. allows you to configure almost everything you could ever imagine
  73. you wanted to change (and more)! The options range from setting the
  74. ports and pins where the keyer is connected, through setting all
  75. the keys used to operate CWReader to redefining all the CW-
  76. characters.
  77.  
  78. The options are divided into two classes: global options and
  79. contest program-specific options. Global options include settings
  80. that are the same, no matter what contest-program you use with
  81. CWReader. The keyer-connection, initialization-key and default CW-
  82. speed are examples of global-options.
  83.  
  84. The contest program-specific options include options like the keys
  85. used to change the CW-speed, the trapped-key definitions and the
  86. sequences to issue in the initialization. The contest program-
  87. specific options also include the global-options, which means, that
  88. although the global-options are intended to be 'global', you can
  89. override some (or all) of them as necessary for a given logging-
  90. program.
  91.  
  92. All the options are saved in files that have an extension of
  93. ".CWR". The global options reside in USERCFG.CWR and the contest
  94. program-specific options in their own .CWR-files, the name usually
  95. being the same as that of the contest-program for which they are
  96. intended. CWRCONF manipulates these files and CWReader loads them
  97. into memory upon startup.
  98.  
  99. A complete list of all the options available for configuration with
  100. CWRCONF is given later in this document, along with a thorough
  101. description of the options.
  102.  
  103.  
  104.  
  105.  
  106.  
  107. INSTALLING CWREADER
  108.  
  109. CWReader is installed (loaded in memory) by running the program
  110. "CWR.COM". If you give no parameters to it, it assumes that what
  111. you want to load is the configuration for CT-program, found in a
  112. file "CT.CWR". If you give a command-line parameter to CWReader
  113. (for example, you type "CWR OWNPRG"), CWReader loads the
  114. configuration file "OWNPRG.CWR". If this file (or in the default-
  115. case, file CT.CWR) doesn't exist, you'll get an error-message. As
  116. the file USERCFG.CWR is also loaded at startup, it must also exist
  117. in the current directory.
  118.  
  119. If you don't have these .CWR-files, you can create the default ones
  120. by running CWRCONF. When it detects the absence of these files, it
  121. creates them and places the default-values in them. If you don't
  122. want to change these defaults, you can quit CWRCONF immediately,
  123. and you'll be ready to run CWR.COM and get it installed in the
  124. memory.
  125.  
  126.  
  127.  
  128. That was the first step needed to get CWReader 'up and running'.
  129. Now CWReader is loaded in memory, but it's not active yet. Your
  130. next step is to load the contest-program you are going to use and
  131. for which the configuration-file you loaded is intended. Once you
  132. have the program ready and running, you can initialize CWReader by
  133. pressing Alt-I (or the keys you set with CWRCONF). CWReader issues
  134. the initialization sequences set with CWRCONF and after it is done,
  135. beeps briefly to mark succesful initialization.
  136.  
  137. Now CWReader is ready to use with your contest-program. When you
  138. press the initialization key (Alt-I by default) again, CWReader
  139. uninstalls itself, this time beeping a little longer to mark
  140. succesful uninstallation. CWReader is not, however, completely
  141. wiped out of computer's memory, but is, in a way, simply suspended.
  142. You can reinitialize it again by pressing the initialization key
  143. once more.
  144.  
  145. When you exit the contest-program you were using, be sure to
  146. uninstall CWReader first! If you can exit the program using some
  147. key-combination (like Alt-X or Alt-Q), you'd better do so, rather
  148. than exit by choosing "quit" from a menu. This allows you to set an
  149. 'uninstall-key' with CWRCONF. When you press this uninstall-key,
  150. CWReader automatically uninstalls itself and then passes the key to
  151. the contest-program. (note these two differences when compared to
  152. Alt-I operation!)
  153.  
  154. Should you accidentally exit your contest-program without
  155. uninitializing CWReader, the system will crash. Most probably even
  156. the contest-program won't quit like normally and when you try to
  157. run other programs, the computer is very likely to hang. To prevent
  158. loss of data and other damage, you should always boot your computer
  159. after this kind of an accident!
  160.  
  161.  
  162.  
  163. By running CWR.COM again when CWReader is already installed in
  164. memory, you can update the options with which CWReader is working.
  165. For example, when you first simply type "CWR" and load the
  166. configuration for CT that way, you can later type "CWR OWNPRG" to
  167. change the configuration options for those of OWNPRG. Or, you may
  168. do changes to the global-options with CWRCONF and then run CWR.COM
  169. again to get these options in effect.
  170.  
  171. There is no way to completely remove CWReader from the memory, but
  172. if you want to do so, use utilities such as MARK and RELEASE. There
  173. should be numerous of such utilities in the public domain and
  174. shareware-market. What you should avoid, however, is to remove
  175. CWReader from the memory (by RELEASE, for example) without first
  176. having uninstalled it. If you do so, your computer's clock will
  177. begin running about four times as fast as normally! When you boot
  178. your computer again, the time will be reset according to the
  179. computer's battery backed-up real-time clock.
  180.  
  181.  
  182.  
  183.  
  184.  
  185. CONNECTING YOUR KEYER TO THE COMPUTER
  186.  
  187. With CWRCONF, you can configure the keyer to any port (LPT1-4,
  188. COM1-4) and any pin of the selected port. Here, however, we make
  189. the assumption, that you are connecting your keyer to a LPT-port
  190. and to it's SLCT-pin (pin number 17 in DB25).
  191.  
  192. Basically, the task is quite simple: just connect the keyer so,
  193. that whenever it keys your rig, it will connect the SLCT-pin to
  194. ground. Think about connecting a straight key to the computer: it
  195. would be simply connected between the SLCT-pin and the ground. The
  196. idea is essentially the same when connecting a keyer of any kind.
  197.  
  198.  
  199.  
  200. Using the accompanying program CWRTEST
  201.  
  202. The CWRTEST-program is intended to help you to connect your keyer
  203. to the computer. Follow the on-screen helps to select the port
  204. where your keyer is connected (use 'C' to COM, 'L' for LPT and
  205. numbers 1-4 to select the individual port). You'll see the current
  206. bit pattern of the selected port and whenever a bit's state
  207. changes, it's shown on the screen.
  208.  
  209. Use the arrow-keys to select a bit and press ENTER to attach a
  210. sidetone to it. Press ENTER another time to toggle the 'polarity'
  211. of the sidetone (i.e. is 1 ON and 0 OFF or 0 ON and 1 OFF). If you
  212. hear a continuous beep when starting CWRTEST, press ENTER to change
  213. the polarity and stop the beep. Now, if you have connected your
  214. keyer correctly, you should hear your sending from the computer's
  215. internal speaker. Confirm that it sounds OK.
  216.  
  217. When using CWReader and a log-program to send CW, the wirings
  218. between your computer, rig and keyer should be as follows:
  219.                
  220.        ╔════════════╗      ╔═════╗         ╔═════╗              
  221.        ║  COMPUTER  ║      ║ RIG ║         ║KEYER║
  222.        ║  in    out ║      ║  in ║         ║ out ║
  223.        ╚══╤══════╤══╝      ╚══╤══╝         ╚══╤══╝
  224.           │      │            │               │
  225.           │      └────────────┴──────┼───────┤
  226.           │                                   │
  227.           └───────────────────────────────────┘
  228.  
  229. The diode (─┼─) between the keyer and rig is necessary, because
  230. without it, there would be a direct way from computer out to
  231. computer in and CWReader would copy what the log-program sent!
  232.  
  233. The existence of the above problem can be checked with CWRTEST by
  234. pressing the SPACE. This causes CWRTEST to send a little message
  235. through the selected port and if you hear it from the speaker, you
  236. should take actions to correct the problem.
  237.  
  238.  
  239.  
  240. LPT-interface versus COM-interface
  241.  
  242. If you have the choice, use the LPT-interface. It is significantly
  243. the simplest and the most reliable way to connect your keyer to the
  244. computer. However, if you have no choice but to use a COM-port, you
  245. should take the following facts into consideration.
  246.  
  247. First of all, the pins of a COM-port are normally in the 0-state,
  248. which means that they are at the same potential than the ground.
  249. Clearly, there is no point in connecting them to the ground through
  250. you keyer. The way I have succeeded in solving the problem was to
  251. connect the interface-pin in question to a pin, which was
  252. constantly held in the 1-state. The pins DTR and RTS are usable for
  253. this, but if CW is output through the same COM-port, these pins are
  254. reset to 0 by the CW-keying routine. And holding them in the 1-
  255. state causes the keying line to the rig being held active all the
  256. time!
  257.  
  258. Anyway, if you configure (with CWRCONF) the keyer (or external-
  259. disable) to a COM-port, this port's DTR and RTS are set active by
  260. the initialization routine. However, they may be reset back to 0 by
  261. a CW-keying routine or just for some other other reason. Careful
  262. experimentation is needed, if you are going to connect your keyer
  263. to a COM-port!
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270. THE DEFAULT SETUP OF F2, F6, F7 AND INSERT
  271.  
  272. The following paragraphs describe the default setup of the F2-, F6-
  273. , F7- and INSERT-key when using CWReader with CT. You may alter
  274. this with CWRCONF and the description as such serves as an example
  275. of the power of configuring CWReader. You don't need a keyer
  276. connected to the computer to use the information contained here.
  277.  
  278. A problem with the CT program is, that when you are answering CQ's,
  279. the message you get from F2 is simply of form "599 123", i.e. there
  280. is no possibility to get a leading "TU" or "R". CWReader offers a
  281. cure for this. It's setup so, that when you press the F2-key, what
  282. is actually passed to CT is F7 followed by F2. When the message
  283. programmed in F7 is "TU 599" and the message in F2 is simply "#"
  284. (the serial-number) or your zone, the output is effectively of form
  285. "TU 599 123". When you normally press the INSERT-key, CT sends
  286. first the other station's call (F5) followed by the exchange (F2).
  287. CWReader changes the action of INSERT so that it passes the keys
  288. F5, F6 and F2 to CT. And when the message in F6 is "599", the
  289. result is of form "<call> 599 123".
  290.  
  291. The abovementioned feature is a significant improvement to CT's
  292. operation, at least in author's opinion.  The drawback of it is,
  293. however, that you effectively lose the CW-memories F6 and F7. So if
  294. you are used to using them (sending "?" and "CL?", for example) you
  295. could consider removing these trap-key settings from CT.CWR with
  296. CWRCONF.
  297.  
  298.  
  299.  
  300.  
  301.  
  302. THE 'INTELLIGENCE' OF CWREADER
  303.  
  304. This section explains how CWReader interprets some characters,
  305. words, spacings and combinations of them. You should know this
  306. information in order to send CW in the most optimum way for
  307. CWReader. In the discussion below, the contest-program is assumed
  308. to be CT. (note that all of these features can be enabled and
  309. disabled with CWRCONF)
  310.  
  311.  
  312.  
  313.    Receiving a 599-report:
  314.  
  315.       When you send a station's call with your paddle, it is copied
  316.       to the CT's call-field. Then, after the call, you immediately
  317.       send the report, "5NN", at which point CWReader wakes up. It
  318.       deletes the characters "5NN" after the call from the call-
  319.       field, moves the cursor to the number-field and commands CT
  320.       to send the exchange-number.
  321.       
  322.       Sometimes you may send 599, by mistake, as "HNN". But don't
  323.       worry, CWReader detects this as well and actually handles
  324.       "HNN" just like it would "5NN".
  325.       
  326.       CWReader's 599-detection is not always active. You can, for
  327.       example, work station VK5NN not having to worry about
  328.       CWReader thinking the "5NN" part of the call was a report.
  329.       The logic CWReader uses is simple: begin monitoring for 599
  330.       after at least one number and at least one letter have been
  331.       received. However, if the number is the first character of
  332.       the call, begin counting from the second character. There is
  333.       one exception: when a question mark is received, 599-
  334.       detection is immediately enabled. This makes sending the
  335.       following call impossible: "V?5NN", so you should probably
  336.       use question marks only at the end of the partial call.
  337.       
  338.       After receiving 599, there is a little pause in copying
  339.       characters from the keyer. This pause is there so that you
  340.       can manually send the exchange number, if you, for example,
  341.       prefer to use your keyer's serial-number logic instead of
  342.       CT's. Be careful, however, when you make a mistake in sending
  343.       the number and keep a too long pause before sending an error
  344.       character: the whole log-line, including the call, will be
  345.       deleted!
  346.  
  347.  
  348.  
  349.    Receiving TU:
  350.  
  351.       Imagine you have just finished entering the number the other
  352.       station gave you and are ready to confirm the QSO. Provided
  353.       you do not use the keyboard to do this, you will send
  354.       something like "TU OH3LIM" with your paddle (or perhaps
  355.       simply "TU", if the pileup is heavy). CWReader can detect
  356.       both of these cases and take actions accordingly.
  357.       
  358.       Let's begin with the reception of a simple "TU". After
  359.       receiving this character combination and a resonably long
  360.       space, CWRreader deletes the TU from the log and confirms the
  361.       QSO like you would do it with ENTER. The delay after TU is
  362.       necessary, because otherwise calls like N2NTU would be
  363.       seriously mistaken. For the same reason there must also be a
  364.       resonably long space BEFORE receiving the TU or otherwise it
  365.       will not be acted upon.
  366.       
  367.       If you send your own call (set with CWRCONF) after the "TU",
  368.       CWReader doesn't even print the call on the screen: if it
  369.       appears to be your call, the action is same as TU's alone
  370.       (without the delay at the end, however), but if it is not,
  371.       the call is displayed and no actions are taken. For example,
  372.       with a call like "N2TUO" (and if your call began with an
  373.       "O"), the last "O" would not display immediately when you
  374.       send it, but later after the 5 of 599 has been sent. When the
  375.       TU is followed by your call, there need not be the space
  376.       neither in the beginning nor in the end of the sequence.
  377.       
  378.       TU is sometimes given without the space between T and U,
  379.       making it effectively X. From CWReader's point of view, the
  380.       TU can be given as X and all actions apply to it as well.
  381.       However, it's not suggested that you make it a habit giving
  382.       TU as X, but just in the case it happens to slip from your
  383.       paddle...
  384.  
  385.  
  386.  
  387.    Skipping CQ-calls
  388.  
  389.       Although you should use CT's F1-key to send CQ-calls, it may
  390.       sometimes be necessary to send a CQ with the paddle. When
  391.       CWReader detects the sequence "TEST", it erases it from the
  392.       screen and does not write anything you send afterwards on the
  393.       screen. When CWReader detects another "TEST"-sequence, it
  394.       resumes normal operation and write everything following the
  395.       sequence on the screen. Be sure to end your CQ's in "TEST"
  396.       (or as set with CWRCONF), because otherwise you'll
  397.       effectively disable CWReader!
  398.  
  399.       If you make a mistake in sending the CQ and send an error-
  400.       character (as described in a later section), CWReader's TEST-
  401.       mode is reset. That is, all you send after the error-
  402.       character, will be put on the screen. Note, that the error-
  403.       character causes its normal action to be executed (normally
  404.       the deletion of the current field)!
  405.  
  406.  
  407.  
  408.    Entering calls partially by keyboard and partially by paddle
  409.  
  410.       Say you are not a very fast typewriter. When a station is
  411.       calling you, you can only enter a few characters of his call.
  412.       Say there is EI5ISF calling you and you enter EI5 after which
  413.       you must hurry to your paddle to send, NOT the rest of the
  414.       call, but the full callsign, of course. CWReader starts
  415.       putting the characters on the screen when you have got past
  416.       the characters that are already on the screen. If you make a
  417.       mistake, however, like sending ES5 instead of EI5, the
  418.       mistaken character will be put on the screen where the cursor
  419.       points! That ES5 would make it look like EI5S on the screen,
  420.       then. In this case, the best action is probably to send an
  421.       error-character (and get the whole call wiped out), as
  422.       discussed in the next section.
  423.  
  424.       Whenever you press a key on the keyboard, CWReader resets its
  425.       'current callsign position'-variable, making it impossible
  426.       for you to first enter EI5 by keyboard, then send EI from the
  427.       paddle, then enter I (or IS or ISF) by keyboard and lastly
  428.       send 5ISF from the paddle. That is, you should not enter more
  429.       of the callsign AFTER you have begun sending with your
  430.       paddle! Just let CWReader read the callsign directly from the
  431.       paddle for you.
  432.  
  433.  
  434.  
  435.    Receiving error-characters
  436.  
  437.       CWReader knows three kinds of error-codes: the standard
  438.       error-character (...-.), a bunch of dots (........) and a few
  439.       dots sent far-spaced. The error-character and bunch of dots
  440.       are easy ones; just make sure you send at least 6 dots, since
  441.       5 would result in receiving the number '5'.
  442.       
  443.       A minimum of three far-spaced dots is needed to interpret it
  444.       as an error-code. There is no maximum, but when you keep a
  445.       'long' pause (compared to the spaces between other dots), the
  446.       error-code is considered ended. Note that it's impossible to
  447.       enter a call like JJ0EEE from the paddle! However, a call
  448.       like EA1XX is possible to enter, but you must remember to
  449.       keep a long enough pause between the last error-dit and the
  450.       callsign's "E". Trying it out is the best way to make your
  451.       timing correct!
  452.       
  453.       Remember, that when an error-character is sent, the WHOLE
  454.       log-line is emptied. This corresponds the keyboard-entered
  455.       Alt-F8 (can be changed with CWRCONF, though). Make sure you
  456.       have the stations callsign firmly in your head when having to
  457.       issue an error-character!
  458.  
  459.  
  460.  
  461.  
  462.  
  463. ISSUES ABOUT CW-SPEEDS
  464.  
  465. There are two CW-speeds in effect: the one of your contest-program
  466. and the one of your keyer. In the discussion below, we'll assume
  467. the contest-program to be CT. It applies, however, to every other
  468. contest-program as well, except that the keys used may be different
  469. (all of them can be changed with CWRCONF).
  470.  
  471.  
  472.  
  473. CT's speed is changed by using the keys Alt-F9 and Alt-F10 (Alt-V
  474. is disabled) and keyer's speed changing is dependent on the keyer.
  475. CT's speeds range from 12 to 50 wpm (yes, CWReader extends it to
  476. this range), and your keyer may further extend it considerably
  477. (both below 12 wpm and above 50 wpm).
  478.  
  479. You should be very careful when changing your keyer's speed. First
  480. of all, you should not change it too much DURING the sending of a
  481. character. Second, you should not change the speed to less than
  482. half the original speed at once. If you want to do such a large
  483. speed change, do it in two phases sending something between these
  484. two (not an E or T, however). Alternatively you can hit two times
  485. Alt-D after you've changed the speed to reset CWReader's speed-
  486. expectations. Third, you may not change CT's speed during the
  487. sending of a character. Especially if the change is large, CWReader
  488. may copy one or more characters wrongly.
  489.  
  490. You can change the speed upwards as much as you like at once. But
  491. there is a limit of maximum copyable speed, which is a function of
  492. the speed set in CT! If CT's speed is at minimum (12 wpm), you
  493. should not try copying speeds greater than 24 wpm. However, because
  494. 12 wpm is such a low speed, this shouldn't be a handicap, because
  495. with CT's speed set to 20 wpm, you'll be able to copy speeds of 40
  496. wpm. And if you set CT's speed to the maximum, 50 wpm, CWReader
  497. will be able to copy speeds up to 100 wpm! The station trying to
  498. copy you may have a little trouble, though.
  499.  
  500. The above statements clearly suggest that you should keep CT's
  501. speed and you keyer's speed 'in sync'. If you lower CT's speed,
  502. you'll most probably want to lower your keyer's speed as well.
  503. Therefore, there is no problem in practice, but it's good for you
  504. to know that conflicts in speeds may lead to errorneous operation
  505. of CWReader.
  506.  
  507. After having changed the keyer speed considerably, avoid sending
  508. single-element characters 'E' and 'T'. As first characters, these
  509. may be copied incorrectly. If you begin getting T's only,
  510. regardless of what you send, the keyer's speed has been changed
  511. down too rapidly. You can either raise the speed and then bring it
  512. slowly down again or press two times Alt-D.
  513.  
  514. If you break your keyer sending its memory by tapping the paddle
  515. (or by any other means), you run into a terrible risk of receiving
  516. one very short element (the interrupted element), which causes
  517. CWReader think your keyer's speed has raised dramatically. Usually
  518. this causes everything that follows to be copied as T's. If you
  519. must break like this very often, you'll sure need to learn to use
  520. Alt-D!
  521. One very important thing about CWReader is, that your contest-
  522. program's CW-speed should ALWAYS be kept at 22 WPM! By default,
  523. configuration for CT sets this upon initialization and after that
  524. it's impossible to change the speed. Alt-F9 and Alt-F10 are trapped
  525. by CWReader and Alt-V is discarded by CWReader, so there remains no
  526. way to change CT's speed. That's how you should configure any other
  527. contest-programs you may use with CWReader.
  528.  
  529. The explanation for the above follows (don't worry if you don't
  530. understand it). When first loaded, CWReader chains itself to the
  531. timer-interrupt and when the contest-program (called CT from here
  532. on) is loaded, it adds itself to this chain. Sending CW is
  533. accomplished by means of the timer-interrupt, as is receiving CW by
  534. CWReader. Because CWReader needs much more precision for the
  535. receiving as CT needs for the sending, it sets the timer-interrupt
  536. to occur four times as often as CT requires. The portion of
  537. CWReader (in timer-interrupt chain before CT) then passes only one
  538. of four interrupts to CT so it seems to CT as the timer were
  539. running at the normal rate. When the CW-speed is
  540. increased/decreased by CWReader, the timer-interrupt's rate is
  541. still held high, but if CT gets to change its CW-speed, it drops
  542. the rate out of the four-times-as-large -value. This means that
  543. copying does not work anymore and that CT's CW-speed drops to
  544. fourth the intended!
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552. EXAMPLE WORKING CONFIGURATIONS
  553.  
  554. This sections is to show you different ways in which you can
  555. benefit from CWReader. Of course there are numerous other ways as
  556. well, so feel free to adapt your own working-practice either as
  557. such or partially modified, to work with CWReader. Take the
  558. 'configurations' in this section only as examples!
  559.  
  560.    'The best way' to use CWReader
  561.  
  562.       'The best' here means most trouble-free and reliable
  563.       operation with CWReader. Of course this depends largely on
  564.       your paddle-sending skills, but with this method, the errors
  565.       should be minimal.
  566.  
  567.       The key issue is to use your keyer's memories as much as
  568.       possible. When you pick a station's call, send it from your
  569.       paddle, then push keyer's button 2 to send the 599 (you can
  570.       make mistakes in it too, especially after 40 hours of
  571.       continuous operation). If the contests calls for fixed-
  572.       numbers (like zones, power or age), you can include this
  573.       number in keyer's message and program CWReader not to send
  574.       anything after 599 (with CWRCONF). You should not use your
  575.       keyer's serial-number logic, because this may create
  576.       conflicts between the numbers you send and the numbers CT
  577.       thinks should be sent.
  578.  
  579.       After the QSO is complete, you press keyer's button 3 to send
  580.       "TU <owncall>" or button 4 to send only "TU" (in case of a
  581.       heavy pileup). CWReader confirms the QSO for you and you are
  582.       ready to log another.
  583.  
  584.    Doing it without a memory-keyer
  585.  
  586.       Without a keyer capable of storing to and sending from
  587.       memories, you are not very well off, actually. Making errors
  588.       in sending 599 or TU can be quite 'disastrous', meaning that
  589.       you must do some work to correct your errors by the keyboard.
  590.       But if you are skilled in sending CW, there should be no
  591.       problems, as your sending will be much like it came from
  592.       memories, right?
  593.  
  594.       In the case of a non-memory capable keyer, you should confirm
  595.       QSO's by using CT's plus-key. This way you will minimize the
  596.       error possibilities. If you want to send only "TU" without
  597.       your call, you can do it with your keyer. Remember, that "X"
  598.       is interpreted as "TU" and "HNN" as "599" and you may
  599.       configure "...... -. -." to be received as "599" as well!
  600.  
  601.    Using CWReader without a keyer
  602.  
  603.       Yes, this is possible also. There is, however, not very much
  604.       you can do with CWReader without a keyer. The only thing is
  605.       the enhanced action of F2 (sending "TU 599 123" instead of
  606.       "599 123"), so if you consider this a worthwhile enhancement,
  607.       go ahead and install CWReader. Remember, however, that F6-
  608.       and F7-memories can't be used for your purposes when CWReader
  609.       is installed.
  610.  
  611.  
  612. OPTIONS CONFIGURABLE WITH CWRCONF
  613.  
  614. The global options (saved in USERCFG.CWR)
  615.  
  616.    Monitor type (default COLOR)
  617.  
  618.       This can be toggled between COLOR and MONO. If MONO is
  619.       selected, the screen-buffer is assumed to be elsewhere and
  620.       the cursor-position is read differently. Set this to COLOR
  621.       even when you are using a color-monitor in a mono-mode!
  622.  
  623.    Your callsign (default OH3LIM)
  624.  
  625.       Enter your callsign here (the maximum length is 15
  626.       characters). This is used to check whether your callsign is
  627.       received after a "TU". If you do not use this feature, it
  628.       doesn't matter what you enter here.
  629.  
  630.    Keyer connection (default LPT1, ACK-pin (0=ON)
  631.  
  632.       This options allows you to set the port, pin and polarity to
  633.       specify where your keyer is connected. If there is no keyer
  634.       connected, select NONE for the port.
  635.  
  636.    Ext. disable conn. (default NOT CONNECTED)
  637.  
  638.       See above.
  639.  
  640.    The initialization key (default Alt-I)
  641.  
  642.       This specifies the initialization key, which is pressed to
  643.       initialize CWReader after loading a log-program. The
  644.       initialization key is also used to uninitialize CWReader.
  645.  
  646.    The disable key (default Alt-D)
  647.  
  648.       This specifies the key used to disable CWReader. When it is
  649.       pressed, nothing is copied from the keyer until it is pressed
  650.       another time. Then copying is continued and all internal
  651.       variables (speed expectations, for example) are reset.
  652.  
  653.    The exchange to send after receiving 599 (default #)
  654.  
  655.       This is the exchange that is programmed in the F2-key. This
  656.       exchange is played after 599 has been received from the keyer
  657.       and when you press the insert-key. With CT, enter "#" here if
  658.       you want a serial number to be sent. The maximum length of
  659.       the exchange is 8 characters.
  660.  
  661.    The time to wait after receiving 599 (default 16 dits)
  662.  
  663.       This specifies the delay (in dits of current CW-speed) after
  664.       receiving 599 during which nothing is copied from the keyer.
  665.       During this time you can manually send an exchange with the
  666.       keyer, for example.
  667.  
  668.    "599"-detection (default ON)
  669.  
  670.       Specifies whether the 599-detection logic is ON or OFF.
  671.  
  672.    "TU"-detection (default ON)
  673.  
  674.       Specifies whether the TU-detection logic is ON or OFF.
  675.  
  676.    "TU <call>"-detection (default ON)
  677.  
  678.       Specifies whether the "TU followed by your call"-detection
  679.       logic is ON or OFF.
  680.  
  681.    "CQ TEST"-detection (default ON, TEST ... TEST)
  682.  
  683.       Specifies whether the CQ-detection logic is ON or OFF and if
  684.       ON, what kind of a CQ-message do you use. The CQ-message is
  685.       specified in terms of start ("TEST", "CQ TEST" or "CQ <space>
  686.       TEST, if copying spaces is enable) and end ("TEST", "K" or
  687.       "<space> K"). Note, that if your callsign contains a K, you
  688.       will only be able to end your CQ with "TEST"! Also, it's not
  689.       possible for CWReader to understand a CQ like "CQ TEST DE
  690.       OH3LIM OH3LIM".
  691.  
  692.    Interpret "X" as "TU" (default YES)
  693.  
  694.       Specifies whether TU can be sent as an X. This can be set to
  695.       NO if you send the "TU" from your keyer's memory (or use log-
  696.       program to send TU's).
  697.  
  698.    Interpret "HNN" as "599" (default YES)
  699.  
  700.       Specifies whether 5NN can be accidentally sent as HNN and
  701.       still be understood by CWReader. This can be set to NO if you
  702.       send the 599 from your keyer's memory.
  703.  
  704.    Action on 'bunch-of-dits' type of error (default Clear call)
  705.  
  706.       This defines the action to take when receiving a 'bunch-of-
  707.       dits' type of error-character. If set to None, the error is
  708.       simply ignored. If set to Clear call, the log-line is wiped
  709.       out (by an elsewhere configured keystroke, by default Alt-
  710.       F8). If set to Reset variables, some internal variables are
  711.       reset, namely ones affecting 1) how far we are in receiving
  712.       599, 2) how many characters are already copied, 3) speed
  713.       expectations and 4) is a CQ-message in progress.
  714.  
  715.    Action on '...-.' type of error (default Clear call)
  716.  
  717.       See above.
  718.  
  719.    Action on 'three-slow-dits' type of error (default Clear call)
  720.  
  721.       See above.
  722.  
  723.    Initialization delay (default 980)
  724.  
  725.       The initialization process of CWReader sets the contents of
  726.       some CW-memories (F2, F6 and F7, specifically). On a floppy-
  727.       disk equipped computer this may take quite a while and
  728.       because the next initialization step may not begin before the
  729.       first one is completed, you may need to increase this delay
  730.       in order to get CWReader initialize itself properly.
  731.  
  732.       With CT, at the initialization, you should see the "Set Fx-
  733.       message"-windows on the screen. If (especially the first)
  734.       doesn't appear, it's likely that this delay is set too low.
  735.       After initialization, you can check the messages of F2, F6
  736.       and F7. They should contain "<exchange specified by you>",
  737.       "TU 5NN" and "5NN", respectively. If they do not, try
  738.       increasing this value.
  739.  
  740.       The values are specified in milliseconds, but they are
  741.       automatically rounded to the nearest 18.2's part of a second.
  742.  
  743.    Default CW-speed (28 wpm)
  744.  
  745.       This sets the default CW-speed which is put in effect every
  746.       time CWReader is initialized.
  747.  
  748.    <THE CW-CHARACTER SETTINGS>
  749.  
  750.       This selection brings up a new screen, in which you can set
  751.       how every possible CW-character is copied. All common
  752.       characters shorter than seven elements are displayed as such
  753.       and other characters can be set up as user-defined CW-
  754.       characters, which can be at most 15 elements long.
  755.  
  756.       Press ENTER on normal CW-characters to change them and use
  757.       INSERT/DELETE to add/delete user defined CW-characters. When
  758.       asked to hit the key to assign, you can use Ctrl-C to cancel
  759.       the assignment, Ctrl-X to specify NONE and Ctrl-Z to make a
  760.       key-sequence. If you want the character ".-", for example, to
  761.       expand just to an 'A', you would simply press the 'A'. But if
  762.       you wanted it to expand to "ABCDE", you would hit Ctrl-Z, the
  763.       sequence ('A', 'B', 'C', 'D', 'E') and then end it by hitting
  764.       Ctrl-X.
  765.  
  766.       You exit the CW-character settings -screen by pressing F10 to
  767.       accept or ESC to cancel all changes you have made.
  768.  
  769.  
  770.  
  771. Contest-program specific options
  772.  
  773. After selecting this choice from the main-menu, you are given a
  774. list of all contest-programs CWRCONF knows (for which it found a
  775. .CWR-file). You can continue by selecting one of them or by
  776. selecting <NEW CONTEST-PROGRAM> which lets you add options for a
  777. new contest-program. The options are initially set as for CT.
  778.  
  779. After this you are presented with the following options to change:
  780.  
  781.    Program name
  782.  
  783.       Specify the contest-program's name here. It's used in the
  784.       previous menu to let you know which options are configured
  785.       for which contest-program.
  786.  
  787.    CW-speed display (default 70,9 ; 113 ; WPM)
  788.  
  789.       Selecting this allows you to specify how CWReader will
  790.       display the CW-speed on the screen. Usually you want the
  791.       speed to be displayed in the same position as it is display
  792.       by the contest-program.
  793.  
  794.       First you specify the X-coordinate (0-79) of the speed-field,
  795.       then the Y-coordinate (0-24). Enter 255 as X-coordinate to
  796.       specify NO DISPLAY. After the coordinates you are asked the
  797.       foreground and the background color. You may have to
  798.       experiment with these to find the right ones for your
  799.       particular contest-program. The last item you choose is
  800.       whether the speed is display in WPM (words per minute) or in
  801.       CPM (characters per minute).
  802.  
  803.    X-coordinate of the call-field (default 15)
  804.  
  805.       This specifies the X-coordinate of the callsign-field in your
  806.       contest-program. It's used when you send a callsign of which
  807.       you have already typed a part in the call-field. If you don't
  808.       need this feature, enter 255 here.
  809.  
  810.    Keys used to change CW-speed (default Alt-F9, Alt-F10)
  811.  
  812.       This specifies the keys you want to use to change the CW-
  813.       speed. Usually they should be set to be the same as in the
  814.       contest-program you use, but this is not constraint. First
  815.       you are asked for the speed-down -key, then the speed-up -
  816.       key.
  817.  
  818.    Key, which shall be discarded (default Alt-V)
  819.  
  820.       As explained earlier, your contest-program's speed must
  821.       always be set to 22 wpm. If it's changed, CWReader will
  822.       probably begin working errorneously. Therefore, it's
  823.       important, that the speed is not changed accidentally, and
  824.       with this option you can set one key to be totally discarded
  825.       to prevent that from happening. In CT, Alt-V is a way to
  826.       change speed in a way which CWReader can't duplicate; that's
  827.       why Alt-V is a good candidate for being discarded.
  828.  
  829.    Clear-key (default Alt-F8)
  830.  
  831.       This sets the key, which is used to clear the call-field.
  832.       It's used when an error-character is sent, and it's action is
  833.       set to Clear call. You might also use the backspace-key here.
  834.  
  835.    Key used to advance to next field after 599 (default Space)
  836.  
  837.       After receiving 599, CWReader should move the cursor to the
  838.       next field (namely the exchange-field) and this option
  839.       specifies the key with which it's done.
  840.  
  841.    Key to send after receiving 599 (default F2)
  842.  
  843.       After receiving 599, CWReader can command the contest-program
  844.       to send your exchange (HIGHLY recommended when the exchange
  845.       is a serial number). This option specifies the key with which
  846.       this is done. Enter Ctrl-X to send nothing after 599.
  847.  
  848.    Confirmation key; when to reset variables (default '+')
  849.  
  850.       This specifies the key with which you confirm a QSO in your
  851.       contest-program. When it's hit, most of CWReader's internal
  852.       variables are reset, so that it's ready for a new QSO.
  853.  
  854.    Key, upon which to uninstall (default Alt-X)
  855.  
  856.       Normally, you uninstall CWReader by pressing the
  857.       initialization-key once more. However, if you forget to do
  858.       this before exiting your contest-program, your system will
  859.       hang. But if you set this option to the be the key, with
  860.       which you exit from the contest-program, CWReader will be
  861.       automatically uninstalled when you are exiting your contest-
  862.       program.
  863.  
  864.    Test that a contest-program is loaded (default YES)
  865.  
  866.       If you set this to YES, you are not allowed to initialize
  867.       CWReader if you have not loaded a contest-program first.
  868.       Usually this may be set to YES, but if you want to enter DOS-
  869.       commands with your keyer, this must be set to NO.
  870.  
  871.    Copy spaces (default NO)
  872.  
  873.       This specifies whether you spaces to be copied or not. In a
  874.       normal contest-type operation there is no point in copying
  875.       the spaces, but when, for example, you are entering DOS-
  876.       commands with your keyer, copying spaces is mandatory. When
  877.       set to YES, you are asked for space's length in dits (the
  878.       delay after which the space is considered a space) and key,
  879.       as which the space is entered (almost always as Space).
  880.  
  881.    Trapped key #1-4  (defaults F2: F7, F2 ; Insert: F5, F6, F2 ;
  882.                      NONE ; NONE)
  883.  
  884.       You can define four trapped keys, which means keys, that are
  885.       translated for the contest-program as something else. You
  886.       could, for example, make the key 'A' trapped and specify its
  887.       sequence as "ABCDE". Then, whenever you press 'A', what would
  888.       appear on the screen would be "ABCDE". The trapped keys can
  889.       be thought of as simple macros.
  890.  
  891.    Init sequence #1-4   (defaults Alt-V, '2', '2', Enter, Shift-
  892.                         F2, BkSp * 8 ;
  893.                         <AFTER599>, Enter, Shift-F6, BkSp * 8 ;
  894.                         '5', 'N', 'N', Enter, Shift-F7, BkSp * 8 ;
  895.                         'T', 'U', Space, '5', 'N', 'N', Enter)
  896.  
  897.       These four sequences are sent to the contest-program when
  898.       CWReader is initialized. Their purpose is to set the
  899.       program's CW-speed to 22 WPM and set CW-memories accordingly.
  900.       Between each of the sequences, there is a delay of the length
  901.       specified in Global options / Initialization delay.
  902.  
  903.       Entering the sequence is just like entering any other key-
  904.       sequence, except that there is an extra-option, Ctrl-Z.
  905.       Pressing Ctrl-Z inserts <AFTER599> in the sequence, which
  906.       means that the exchange specified in Global options / The
  907.       exchange to send after 599 is inserted in place of
  908.       <AFTER599>. The maximum length of each init-sequence is 15
  909.       with <AFTER599> calculated as set in Global options.
  910.  
  911.    <CONTEST PROGRAM SPECIFIC 'GLOBAL OPTIONS'>
  912.  
  913.       Selecting this options brings up a screen which is just like
  914.       the global options -screen. By default all the options are
  915.       set to "DEFAULT", which means that their values are taken
  916.       from the actual global options.
  917.  
  918.       However, you can change any of the options and it will take
  919.       precedence over the corresponding actual global option.
  920.       Pressing space returns the options back to DEFAULT.
  921.  
  922.  
  923.  
  924.  
  925.  
  926. TIPS FOR CWREADER USERS
  927.  
  928. This section provides some miscellaneous information/tips about the
  929. operation of CWReader. It's recommended reading for somebody who
  930. has learned to use CWReader but is still a little uncomfortable
  931. with it.
  932.  
  933.    Character spacings
  934.  
  935.       You must be very careful not to send the characters too
  936.       close-spaced. For example, in "/P" the space between / and P
  937.       is often omited and the call is still well understood, but
  938.       CWReader can't say whether -..-..--. is intended to be "/P",
  939.       "DDG" or perhaps "NETIME" (hi). These too long 'characters'
  940.       are simply skipped by CWReader.
  941.  
  942.       The dits are said to be one unit long and the dahs are three
  943.       such units. Character spaces should also be a MINIMUM of
  944.       three units! Often, when sending callsigns 'in a hurry' (that
  945.       is: in a contest), the spaces just get shortened to two
  946.       units; there is no problem when receiving such characters by
  947.       ear. But CWReader may have problems reading such CW and it
  948.       sure is annoying when you send a call correctly but then
  949.       notice it appearing wrong on the screen. (and even more
  950.       annoying if you don't!)
  951.  
  952.       Some keyers have (at least my CMOS Super Keyer II has) a
  953.       feature called "auto-spacing", which helps to prevent this
  954.       kind of errors from happening. It automatically extends any
  955.       space longer than two units to at least three units. It's
  956.       really a good idea to set your keyer's auto-spacing on, if it
  957.       has this feature! The effect is hardly noticed by the
  958.       operator when sending with higher speeds (>25 wpm).
  959.  
  960.    An idea of using the external-disable feature
  961.  
  962.       You may have wondered what you could use the external-disable
  963.       feature for. Well, one use is to connect a simple switch to
  964.       it to make it possible to disable CWReader otherway than
  965.       using the Alt-D. For some users flipping a switch is easier
  966.       than pushing two keys on the keyboard.
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973. THE DISTRIBUTION POLICY AND REGISTERATION
  974.  
  975. CWReader is distributed as a shareware-program. You are encouraged
  976. to copy it to your friends, upload it to Bulletin Board Systems
  977. (BBS's, possibly ones that are specialized to HAM-software) and to
  978. spread it all over the globe by any means.
  979.  
  980. You may try CWReader completely free for some time. You may try it
  981. in a contest, on a DX-pedition or just play with it, giving
  982. commands like "DIR/P" with your paddle.
  983.  
  984. After you have been using CWReader for some time and have got used
  985. to it and possible even couldn't manage further without it, you
  986. should register your copy. You are NOT asked here to register
  987. "after four weeks from the date when you first received CWReader".
  988. You may decide yourself when you have evaluated CWReader for a long
  989. enough time and when to register. You know, there are no major
  990. contests every weekend and contests are really good opportunities
  991. to test CWReader.
  992.  
  993. All in all, if you continue using CWReader, you should register.
  994. But if you just try it in a few contests, play with it around a
  995. little and then think "nice program, but I don't need it", you
  996. don't have to register.
  997.  
  998.  
  999.  
  1000. Registering CWReader
  1001.  
  1002. When the time has come to register your copy of CWReader (see the
  1003. above paragraph), you should send a letter, along with $8, to the
  1004. following address:
  1005.  
  1006.       Mikko Noromaa OH3LIM
  1007.       Kanavamäki 13 E 23
  1008.       00840 Helsinki
  1009.       FINLAND
  1010.  
  1011. Include in the letter your name, callsign (if applicable) and
  1012. postal address. Also all comments, bug-reports and enhancement-
  1013. ideas are welcome. If you want to get the newest version of
  1014. CWReader from me in return-mail, include a 5¼ or 3½ diskette or
  1015. additional $2 of money. If there is no new version available, your
  1016. diskette (or $2) is put on hold and when the next release comes
  1017. available, it'll be sent to you.
  1018.  
  1019. If you think that $8 is too little to pay for such a brilliant
  1020. program as CWReader is, your increased contribution is more than
  1021. welcome! And if you can't afford $10, less will do as well. Anyway,
  1022. a registeration along with only a few dollars is MUCH better than
  1023. no registeration at all!
  1024.  
  1025.  
  1026.  
  1027. When you register, you'll get the following benefits:
  1028.    -  A complete and working CWReader-program (well, that's what
  1029.       your current version is - the shareware-version is not
  1030.       crippled in any way)
  1031.    -  The next version will be sent to you when it becomes
  1032.       available (if a diskette or $2 sent)
  1033.    -  When there is a very major new release of CWReader or a very
  1034.       significant bug-fix, all registered users will get the new
  1035.       version, be a diskette sent or not
  1036.    -  Support for CWReader. All questions of registered users will
  1037.       be answered (preferable sent by normal mail or electronic
  1038.       mail) and probably those of unregistered users too!
  1039.  
  1040.  
  1041. That's not too many benefits - but if I would have offered to send
  1042. a registered version with your name on it after receiving your
  1043. registeration, send regular updates to all users and so on, I would
  1044. have had to at least double the price! I think it's best for all to
  1045. have this system with a low price and little benefits.
  1046.  
  1047.  
  1048.  
  1049. If you have anything to ask me about CWReader, write to the address
  1050. given above. You may also send mail to my internet-address:
  1051. Mikko.Noromaa@hut.fi
  1052.  
  1053. Hope to see you in contests and pileups! And hope you'll enjoy
  1054. CWReader and register it soon!
  1055.  
  1056.                                        73 de Mikko Noromaa OH3LIM
  1057.